#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define PORT 3490 		/* Server的端口 */
int a;
int leicun()
{
	FILE *fp;
	char mem[10];
	double meminfo[2];
	float mem_rate;
	char text[1024];
	
//while(1)
//{
	fp=fopen("/proc/meminfo","r");
	int index=0;
	
	while(!feof(fp))
	{
		if(index<2)
		{		
			fgets(text,1024,fp);	
	
			sscanf(text,"%s %lf\n",mem,&meminfo[index]);
			
			index++;
		}
		else break;
		
	}
	fclose(fp);
	//printf("%s\n",mem);
	//printf("%lf %lf\n",meminfo[0],meminfo[1]);
	mem_rate=(1-meminfo[1]/meminfo[0])*100;
	a=mem_rate;
	//printf("%d\n",a);
	sleep(1);
//}
	return (a);
}
int main(int argc, char *argv[])
{
	int sockfd, numbytes;
	char buf[100];
        int leicun();
	struct hostent *he;		/* 主机信息 */
	struct sockaddr_in their_addr; 	/* 对方地址信息 */
	if (argc != 2) {
		fprintf(stderr,"usage: client hostname\n");
		exit(1);
	}
        if ((he=gethostbyname(argv[1])) == NULL) { 
		/* get the host info */
		herror("gethostbyname");
		exit(1);
	}

	if ((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1) {
		perror("socket");
		exit(1);
	}

	their_addr.sin_family = AF_INET; 
	their_addr.sin_port = htons(PORT); 		/* short, NBO */
	their_addr.sin_addr = *((struct in_addr *)he->h_addr);
	bzero(&(their_addr.sin_zero), 8); 		/* 其余部分设成0 */

	if (connect(sockfd, (struct sockaddr *)&their_addr, sizeof(struct sockaddr)) == -1) {
		perror("connect");
		exit(1);
	}
       while(1)
       {
           leicun();
           sprintf(buf,"%d",a);        
           //printf("please input a word:\n");
           //scanf("%s",&buf);
           if (send(sockfd, buf, sizeof(buf), 0) == -1) perror("send");
           //if(strcmp(buf,"goodbye")==0)break;
	   //if ((numbytes=recv(sockfd,buf,sizeof(buf),0))==-1) 	
	   //{
		//perror("recv");
		//exit(1);
	   //}
           //buf[numbytes] = '\0';
           //printf("Received: %s\n",buf);
       }
        close(sockfd); 	
        return 0;
}


